<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /* 
        冒泡排序
        var ary = [12,23,11,34,10,9];
        // 把数组的每一项进行两两的比较，如果前一项大于后一项，就进行位置的交换
         */

        // 第一轮比较  比较5次  ary.length - 已经比较的轮数 - 1
        // 12,23  [12,23,11,34,10,9]
        // 23,11  [12,11,23,34,10,9]
        // 23,34  [12,11,23,34,10,9]
        // 34,10  [12,11,23,10,34,9]
        // 34,9   [12,11,23,10,9,34]

        // 第二轮比较  比较4次 ary.length - 已经比较的轮数 - 1
        // 12,11   [11,12,23,10,9,34]
        // 12,23   [11,12,23,10,9,34]
        // 23,10   [11,12,10,23,9,34]
        // 23,9    [11,12,10,9,23,34] 

        // 第三轮比较  比较3次 ary.length - 已经比较的轮数 - 1 

        // 每比较一轮就会产生一个当前参与比较的值的最大值放到数组的最后边，当前数组一共有6项，比较5轮就会产生5个最大的值放到数组的最后边，剩下的那一个值肯定是最小的 ary.length-1


        // 每一轮比较的次数
        // ary.length - 已经执行过的轮数(产生最大值的个数) - 1



        // 两个变量交换位置
        //  var a = 12;
        //  var b = 13;

        //  var temp = a; // 12
        //  a = b; // 13
        //  b = temp; // 12

        // var temp = b; // 13
        // b = a; // 12
        // a = temp; // 13

        //----------------------------------------------------------

        var ary = [12, 23, 11, 34, 10, 9]; // af0

        function bubble(ary) { // af0
            // 此循环控制的是比较的轮数
            for (var i = 0; i < ary.length - 1; i++) {
                // 里边控制的是每一轮比较的次数(两两比较)
                for (var j = 0; j < ary.length - i - 1; j++) {
                    // 如果当前项大于后一项，就两两交换位置
                    if (ary[j] > ary[j + 1]) {
                        // var temp = ary[j];
                        // ary[j] = ary[j + 1];
                        // ary[j + 1] = temp;

                        var temp = ary[j + 1];
                        ary[j + 1] = ary[j];
                        ary[j] = temp;
                    }
                }

            }
            return ary;
        }

        console.log(bubble(ary));

        console.log(ary);




    </script>
</body>

</html>